#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
优化版日志模块快速入门示例

本文件提供了优化版日志模块的最小使用示例，适合快速集成和测试。
包含最基本的日志记录功能，可作为集成到现有系统的参考。
"""

# 导入优化版日志模块的核心功能
from optimized_logging import (
    # 基本系统日志函数
    log_debug, log_info, log_warning, log_error, log_critical, log_exception,
    
    # 操作日志函数
    record_operation,
    
    # 高级功能 (可选使用)
    log_exceptions as log_exceptions_decorator,
    LogContext
)


def main():
    """
    快速入门主函数
    """
    print("\n=== 优化版日志模块快速入门 ===\n")
    
    # 1. 日志系统自动初始化
    print("1. 日志系统将在首次使用时自动初始化")
    print("   ✓ 系统会自动创建logs目录和相关日志文件")
    print("   ✓ 日志文件格式: system_YYYYMMDD.log")
    print()
    
    # 2. 基本系统日志记录
    print("2. 记录基本系统日志...")
    
    # 不同级别的日志记录
    log_debug("这是一条调试日志 - 通常用于开发和故障排除")
    log_info("这是一条信息日志 - 记录正常的系统操作")
    log_warning("这是一条警告日志 - 表示可能的问题")
    log_error("这是一条错误日志 - 表示发生了错误")
    log_critical("这是一条严重错误日志 - 表示系统级别的严重问题")
    
    # 带上下文信息的日志 (推荐使用，便于问题定位)
    context = {
        "user_id": "1001",
        "action": "登录",
        "timestamp": "2024-11-01T10:30:00"
    }
    log_info("用户执行了操作", context=context)
    
    print("   ✓ 基本日志记录完成")
    print()
    
    # 3. 异常日志记录
    print("3. 异常日志记录演示...")
    
    try:
        result = 10 / 0  # 故意引发异常
    except Exception as e:
        # 记录异常信息
        log_exception(e, "执行计算时发生错误")
        print(f"   ✓ 异常已记录: {type(e).__name__}")
    print()
    
    # 4. 操作日志记录
    print("4. 记录操作日志...")
    
    # 记录用户操作
    record_operation(
        username="admin",              # 操作人
        operation_module="用户管理",   # 操作模块
        operation_content="修改用户权限", # 操作内容
        operation_result="成功",       # 操作结果
        detail={                       # 详细信息
            "user_id": "1002",
            "new_role": "管理员"
        }
    )
    print("   ✓ 操作日志记录完成")
    print()
    
    # 5. 使用异常装饰器 (简化异常处理)
    print("5. 使用异常装饰器演示...")
    
    # 定义一个使用异常装饰器的函数
    @log_exceptions_decorator
    def process_data(input_value):
        """处理数据的示例函数"""
        print(f"   处理数据: {input_value}")
        # 模拟处理逻辑
        if input_value < 0:
            raise ValueError("输入值不能为负数")
        return input_value * 2
    
    # 测试正常情况
    try:
        result = process_data(10)
        print(f"   处理结果: {result}")
    except Exception as e:
        print(f"   异常被捕获: {e}")
    
    # 测试异常情况
    try:
        process_data(-5)
    except Exception as e:
        print(f"   异常被装饰器自动记录，同时向上抛出: {e}")
    print()
    
    # 6. 使用日志上下文管理器
    print("6. 使用日志上下文管理器演示...")
    
    # 使用上下文管理器记录一组相关操作
    with LogContext("数据导入任务"):
        log_info("开始导入数据")
        # 模拟导入过程
        log_debug("读取文件中...")
        log_info("数据验证完成")
        log_debug("准备数据库插入...")
        log_info("数据导入成功")
    
    print("   ✓ 上下文管理器日志记录完成")
    print()
    
    print("\n=== 快速入门示例完成 ===")
    print("请查看 logs/quickstart.log 文件以验证日志输出")
    print("操作日志已记录到系统数据库中")
    print("\n接下来您可以:")
    print("1. 根据需要在您的代码中导入并使用相应的日志函数")
    print("2. 参考 logging_integration_example.py 了解更复杂的集成场景")
    print("3. 查看 优化版日志模块使用指南.md 了解完整功能和最佳实践")


if __name__ == "__main__":
    main()
